package com.molichuxing.services.business.service;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.services.business.dto.request.modify.CarCommercialInsuranceModifyDto;
import com.molichuxing.services.business.dto.request.modify.CarCompulsoryInsuranceModifyDto;
import com.molichuxing.services.business.dto.request.modify.MaintenanceModifyDto;
import com.molichuxing.services.business.dto.response.*;
import com.molichuxing.services.property.CarInsuranceTypeEnum;

import java.util.List;
import java.util.Map;

/**
 *  保养信息服务类
 * @author xuelin yi
 */
public interface MaintenanceBizService {

    /**
     * 根据条件分页查询保养信息
     * type 保养类别：1-待保养，0-待审核，8-审核记录
     * licencePlate 车牌
     * vin 车架号
     * totalStartMileage    已行驶开始里程
     * totalEndMileage    已行驶结束里程
     *  maintainableStartDate   开始保养时间
     *  maintainableEndDate   结束保养时间
     * purchaseStartDate  采购开始时间
     * purchaseEndDate    采购结束时间
     * checkStartDate  审核开始时间
     * checkEndDate    审核结束时间
     * examineStatus   审核状态 3-审核通过，4-审核驳回
     * @param mapParam
     * @param pageNum
     * @param pageSize
     * @return
     */
    public Paged<MaintenanceBizDto> getMaintenancePage(Map<String, Object> mapParam, Integer pageNum, Integer pageSize);


    /**
     * 根据主键id获取保养信息
     * @param id
     * @return
     * @throws Exception
     */
    public MaintenanceDetailBizDto getMaintenance(Integer id) throws Exception;

    /**
     * 根据车辆id获取保养信息
     * @param carId
     * @return
     * @throws Exception
     */
    public List<MaintenanceRecordBizDto> getMaintenanceByCarId(Integer carId) throws Exception;

    /**
     * 审核保养信息
     * @param modifyDto
     * @return
     */
    public int modifyMaintenanceCheck(MaintenanceModifyDto modifyDto)throws Exception ;
}
